#ifndef __FT6236_H_
#define __FT6236_H_

#include "main.h"


//IO方向设置
//#define SDA_IN()  {GPIOC->CRL&=0XFFFF0FFF;GPIOC->CRL|=8<<4*3;}
//#define SDA_OUT() {GPIOC->CRL&=0XFFFF0FFF;GPIOC->CRL|=3<<4*3;}

#define WITH 320
#define HEIGH 480

#define USE_HORIZONTAL  	 1		//定义液晶屏顺时针旋转方向 	0-0度旋转，1-90度旋转，2-180度旋转，3-270度旋转

#define TP_PRES_DOWN 0x80  			//触屏被按下
#define TP_COORD_UD  0x40  			//触摸坐标更新标记
#define CT_MAX_TOUCH  5    			//电容屏支持的点数,固定为5点

//触摸点相关数据结构体定义
typedef struct
{
	uint8_t sta;	                  //触摸情况，b7:按下1/松开0; b6:0没有按键按下/1有按键按下;bit5:保留；bit4-bit0触摸点按下有效标志，有效为1，分别对应触摸点5-1；
	uint16_t x[CT_MAX_TOUCH];		  //支持5点触摸，需要使用5组坐标存储触摸点数据
	uint16_t y[CT_MAX_TOUCH];

}_m_tp_dev;

extern _m_tp_dev tp_dev;

static volatile char touchPressedScan = 0; 	//是否被按下 0.没有被按下，1.被按下
/*********************IO操作函数*********************/
//#define	FT6236_RST				PCout(13)	//用在输出模式
//#define FT6236_SCL 				PCout(0)	//用在输出模式
//#define FT6236_SDA 				PCout(3)	//用在输出模式
//#define FT6236_SDA_Read 			PCin(3)		//用在输入模式
//#define FT6236_INT 				PCin(10)	//用在输入模式

//I2C读写命令
#define FT_CMD_WR 				0X70   			//写命令 0x38 << 1 | 0
#define FT_CMD_RD  				0X71 			//读命令 0x38 << 1 | 1
//FT6236 部分寄存器定义
#define FT_DEVIDE_MODE 			0x00   		//FT6236模式控制寄存器
#define FT_REG_NUM_FINGER   	0x02		//触摸状态寄存器

#define FT_TP1_REG 				0X03	  	//第一个触摸点数据地址
#define FT_TP2_REG 				0X09		//第二个触摸点数据地址
#define FT_TP3_REG 				0X0F		//第三个触摸点数据地址
#define FT_TP4_REG 				0X15		//第四个触摸点数据地址
#define FT_TP5_REG 				0X1B		//第五个触摸点数据地址


#define	FT_ID_G_LIB_VERSION			0xA1		//版本
#define FT_ID_G_MODE 			    0xA4   		//FT6236中断模式控制寄存器
#define FT_ID_G_THGROUP			  	0x80   		//触摸有效值设置寄存器
#define FT_ID_G_PERIODACTIVE		0x88   		//激活状态周期设置寄存器
#define Chip_Vendor_ID        		0xA3      	//芯片ID(0x36)
#define ID_G_FT6236ID			    0xA8		//0x11

uint8_t FT6236_WR_Reg(uint8_t reg,uint8_t *buf,uint8_t len);
void FT6236_RD_Reg(uint8_t reg,uint8_t *buf,uint8_t len);
void FT6236_Init(void);
void FT6236_Scan(void);

#endif



